package rock.negagame.client.sprites;

import rock.negagame.client.sprites.control.GameController;
import rock.negagame.client.sprites.control.Pantalla;
import rock.negagame.client.sprites.enemigos.Enemigo;
import rock.negagame.client.sprites.enemigos.Movimiento;

import com.google.gwt.user.client.ui.Image;

public class Bala extends Sprite{

	boolean jugador;
	Movimiento movimiento;
	static int DESP_BALA = 9;
	public boolean activa = false;
	
	public Bala(Image img, boolean jugador) {
		super(img);
		// TODO Auto-generated constructor stub
		this.jugador = jugador;
		this.setVisible(false);
	}
	
	public void disparo(Sprite n){
		GameController.getGame().l.setText(GameController.getGame().l.getText()+"  ......bala dispara....");
		if(jugador){
			dispararHaciaArriba();
		}else{
			dispararHaciaAbajo((Enemigo) n);
		}
	}
	public boolean mueve(){
		if(movimiento.mueve(this, DESP_BALA)){
			return true;
		}else{
			activa=false;
			if(!jugador){
				GameController.getGame().elimina(this);
			}
			return false;
		}
	}
	private void dispararHaciaArriba(){
		activa = true;
		int distancia = Pantalla.getPantalla().h-(Pantalla.getPantalla().h - GameController.getGame().getJugador().getPosY()) + 40;
		movimiento = new Movimiento(Movimiento.SUP,distancia);
		this.setPosition(GameController.getGame().getJugador().getPosX()+GameController.getGame().getJugador().getOffsetWidth()/2, GameController.getGame().getJugador().getPosY());
		GameController.getGame().l.setText(GameController.getGame().l.getText()+"  ......disparo hacia arriba....");
		
		this.setVisible(true);
		movimiento.mueve(this, DESP_BALA);		
	}

	private void dispararHaciaAbajo(Enemigo n){
		activa = true;
		int distancia = Pantalla.getPantalla().h - n.getPosY() + 10;
		movimiento = new Movimiento(Movimiento.INF,distancia);
		this.setPosition(n.getPosX()+n.getOffsetWidth()/2, n.getPosY());
		GameController.getGame().l.setText(GameController.getGame().l.getText()+"  ......disparo hacia arriba....");
		
		this.setVisible(true);
		movimiento.mueve(this, DESP_BALA);	
	}
}
